/*
 * DespesaConverter.java
 *
 * Created on 4 de Julho de 2007, 08:45
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package br.com.esp.agendafinanceira.converter;

import br.com.esp.agendafinanceira.entity.Despesa;
import br.com.esp.agendafinanceira.entity.TipoDespesa;
import br.com.esp.agendafinanceira.entity.Usuario;
import br.com.esp.agendafinanceira.to.DespesaTO;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author 003259L2
 */
public class DespesaConverter {
    
    /** Creates a new instance of DespesaConverter */
    public DespesaConverter() {
    }
    
    
    public static Despesa TOToEntity(final DespesaTO to) {
        Despesa despesa = null;
        
        if (to != null) {
            despesa = new Despesa();
            despesa.setNome(to.getDescricao());
            despesa.setParcela(to.getParcela());
            despesa.setQtdParcelas(to.getQtdParcelas());
            despesa.setValor(to.getValor());
            despesa.setVencimento(to.getVencimento());
            
            Usuario usuario = new Usuario();
            usuario.setId((Long) to.getUsuarioIdentificador());
            despesa.setUsuario(usuario);
            
            TipoDespesa tipoDespesa = new TipoDespesa();
            tipoDespesa.setId((Long) to.getTipoDespesaIdentificador());
            despesa.setTipoDespesa(tipoDespesa);
        }
        
        return despesa;
    }
    
    public static DespesaTO entityToTO(final Despesa despesa) {
        DespesaTO to = null;
        
       if(despesa != null) {
            to = new DespesaTO();
            to.setIdentificador(despesa.getId());
            to.setDescricao(despesa.getNome());
            to.setParcela(despesa.getParcela());
            to.setQtdParcelas(despesa.getQtdParcelas());
            to.setValor(despesa.getValor());
            to.setVencimento(despesa.getVencimento());
            if(despesa.getTipoDespesa() != null) {
                to.setTipoDespesaIdentificador(despesa.getTipoDespesa().getId());
                to.setTipoDespesaDesc(despesa.getTipoDespesa().getNome());
            }
            if(despesa.getUsuario() != null) {
                to.setUsuarioIdentificador(despesa.getUsuario().getId());
            }
       }
                
       return to;
    }
    
    public static List<DespesaTO> listEnityToListTO(final List<Despesa> despesas) {
        List<DespesaTO> listaTOs = new ArrayList<DespesaTO>();
        
        if (despesas != null && !despesas.isEmpty()) {
            DespesaTO to = null;
            for(Despesa d : despesas) {
                if(d != null) {
                    to = entityToTO(d);
                    listaTOs.add(to);
                }
            }
        }
        
        return listaTOs;
    }
    
}
